/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gradius.Elementos.Naves;

import gradius.InterfaceGrafica.TelaGrafica;
import gradius.Elementos.Tipos.tipoTiro;
import gradius.Elementos.Tiros.Tiro;
import java.awt.Image;
import java.util.ArrayList;

/** Classe que define os atributos e métodos das naves atiradoras
 *
 * @author Eduardo
 */
public class NaveAtiradora extends NaveAnimada
{
    private tipoTiro tipoDoTiro1;
    private tipoTiro tipoDoTiro2;
    private int delayTiro1;
    private int delayTiro2;

    /** Construtor da classe NaveAtiradora
     *
     * @param tela - Painel de desenho do jogo
     * @param imagens - Vetor onde as imagens de um determinado elemento são armazenadas
     * @param coordX - Coordenada do eixo horizontal
     * @param coordY - Coordenada do eixo vertical
     * @param tamX - Largura em pixels do elemento no eixo horizontal
     * @param tamY - Largura em pixels do elemento no eixo vertical
     */
    public NaveAtiradora (TelaGrafica tela, Image[] imagens, int coordX, int coordY, int tamX, int tamY)
    {
        super(tela,imagens, coordX, coordY, tamX, tamY);
        this.tipoDoTiro1 = tipoTiro.BALA;
        this.tipoDoTiro2 = null;
        this.delayTiro1=1;
        this.delayTiro2=1;
    }

    /** Método setter que seta o tipo de tiro1 da NaveAtiradora
     *
     * @param tipo - Tipo de tiro1 da nave atiradora que sera setado
     */
    public void setTipoTiro1 (tipoTiro tipo)
    {
        this.tipoDoTiro1 = tipo;
    }

    /** Metodo getter que retorna o tipo de Tiro1 da nave atiradora
     *
     * @return TipoTiro - Tipo de tiro1 da Nave Atiradora
     */
    public tipoTiro getTipoTiro1 ()
    {
        tipoTiro t = this.tipoDoTiro1;
        return t;
    }

    /** Método setter que seta o tipo de tiro2 da NaveAtiradora
     *
     * @param tipo - Tipo de tiro2 da nave atiradora que sera setado
     */
    public void setTipoTiro2 (tipoTiro tipo)
    {
        this.tipoDoTiro2 = tipo;
    }

    /** Metodo getter que retorna o tipo de Tiro2 da nave atiradora
     *
     * @return TipoTiro - Tipo de tiro2 da Nave Atiradora
     */
    public tipoTiro getTipoTiro2 ()
    {
        tipoTiro t = this.tipoDoTiro2;
        return t;
    }

    /** Método setter que seta se o tiro1 está pronto para ser disparado
     *
     * @param ready - Parâmetro que informa se o tiro1 está pronto para ser disparado
     */
    public void setTiro1Ready (int ready)
    {
        this.delayTiro1=ready;
    }

    /** Método getter que retorna se o tiro1 pode ser disparado
     *
     * @return int - Retorna se o tiro1 está pronto para ser disparado
     */
    public int getTiro1Ready ()
    {
        int i = this.delayTiro1;
        return i;
    }

    /** Método setter que seta se o tiro2 está pronto para ser disparado
     *
     * @param ready - Parâmetro que informa se o tiro2 está pronto para ser disparado
     */
    public void setTiro2Ready (int ready)
    {
        this.delayTiro2=ready;
    }

    /** Método getter que retorna se o tiro2 pode ser disparado
     *
     * @return int - Retorna se o tiro2 está pronto para ser disparado
     */
    public int getTiro2Ready ()
    {
        int i = this.delayTiro2;
        return i;
    }

    /** Método que faz a nave atirar
     *
     * @param tela - Painel de desenho do jogo
     * @param tiros - ArrayList de tiros
     */
    public void atira(TelaGrafica tela, ArrayList<Tiro> tiros)
    {
    }
}
